import java.util.ArrayList;
import java.util.Arrays;

/**
 * @Author: 马宇航
 * @Do: 测试数组的插入
 * @DateTime: 22/05/19/0019 上午 9:41
 * @Component: 成都蜗牛学苑
 **/
public class ArrayTestInsert {
    public static void main(String[] args) {
        //首先定义一个基本数组arr，往数组的2,3的值中间，插入一个9
        int[] arr = new int[]{1, 2, 3, 4, 5, 6};
        //第一个问题，数组定义好以后，数组的长度是固定的
        //解决方案，数组扩容 Arrays.copyOf
        arr = Arrays.copyOf(arr, 7);
        System.out.print("第一步：");
        for (int i : arr) {
            System.out.print(i+" ");
        }
        System.out.println();
        //第二个问题，如何插入一个9  System.arraycopy
        /**
         * 第一个参数：源数组
         * 第二个参数：从哪里开始复制(下标)
         * 第三个参数：目标数组，复制后要粘贴的地方
         * 第四个参数：在目标数组中，从哪个小标开始粘贴
         * 第五个参数：要复制的数量，从第二个参数往后数
         *
        **/
        System.arraycopy(arr,2,arr,3,4);
        System.out.print("第二步：");
        for (int i : arr) {
            System.out.print(i+" ");
        }
        //最后一步：对应插入的数据，复值
        arr[2] = 9;
        System.out.println();
        System.out.print("第三步：");
        for (int i : arr) {
            System.out.print(i+" ");
        }
    }
}
